﻿using System;

namespace SecurityTokenServiceNS
{
    public class Constants
    {

        public class WSTrust
        {
			public enum ProofType : int { PublicKey, SymmetricKey, Bearer }

            public const string NamespaceUri0502 = "http://schemas.xmlsoap.org/ws/2005/02/trust";
            public const string NamespaceUri13 = "http://docs.oasis-open.org/ws-sx/ws-trust/200512";

            public class Actions0502
            {
                public const string Issue = "http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue";
                public const string IssueReply = "http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue";
            }

            public class Actions13
            {
                public const string Issue = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue";
				public const string IssueReply = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTR/Issue";
				public const string IssueFinalReply = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTRC/IssueFinal";
            }

            public class RequestType0502
            {
                public const string Issue = "http://schemas.xmlsoap.org/ws/2005/02/trust/Issue";
            }

            public class RequestType13
            {
                public const string Issue = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue";
            }

            public class Attributes
            {
                public const string Context = "Context";
            }

            public class Elements
            {
				public const string RequestSecurityToken = "RequestSecurityToken";
				public const string RequestSecurityTokenResponse = "RequestSecurityTokenResponse";
				public const string RequestSecurityTokenResponseCollection = "RequestSecurityTokenResponseCollection";
				public const string RequestType = "RequestType";
                public const string AppliesTo = "AppliesTo";
                public const string KeySize = "KeySize";
                public const string KeyType = "KeyType";
                public const string Entropy = "Entropy";
                public const string BinarySecret = "BinarySecret";
                public const string TokenType = "TokenType";
                public const string RequestedSecurityToken = "RequestedSecurityToken";
                public const string RequestedAttachedReference = "RequestedAttachedReference";
                public const string RequestedUnattachedReference = "RequestedUnattachedReference";
                public const string RequestedProofToken = "RequestedProofToken";
                public const string ComputedKey = "ComputedKey";
                public const string EncryptWith = "EncryptWith";
                public const string SignWith = "SignWith";
                public const string CanonicalizationAlgorithm = "CanonicalizationAlgorithm";
                public const string EncryptionAlgorithm = "EncryptionAlgorithm";
                public const string ComputedKeyAlgorithm = "ComputedKeyAlgorithm";
                public const string Claims = "Claims";
				public const string UseKey = "UseKey";
            }

            public class ComputedKeyAlgorithms13
            {
                public const string PSHA1 = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/CK/PSHA1";
            }
            public class ComputedKeyAlgorithms0502
            {
                public const string PSHA1 = "http://schemas.xmlsoap.org/ws/2005/02/trust/CK/PSHA1";
            }

            public class KeyTypes0502
            {
                public const string Public = "http://schemas.xmlsoap.org/ws/2005/02/trust/PublicKey";
                public const string Symmetric = "http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey";
				public const string Bearer = "http://schemas.xmlsoap.org/ws/2005/02/trust/Bearer";
			}

            public class KeyTypes13
            {
                public const string Public = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/PublicKey";
                public const string Symmetric = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey";
				public const string Bearer = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer";
            }
        }

        public class WSPolicy
        {
            public const string NamespaceUri = "http://schemas.xmlsoap.org/ws/2004/09/policy";

            public class Elements
            {
                public const string AppliesTo = "AppliesTo";
            }
        }

        public class WSAddressing
        {
			public const string NamespaceUri0408 = "http://schemas.xmlsoap.org/ws/2004/08/addressing";
			public const string NamespaceUri10 = "http://www.w3.org/2005/08/addressing";

            public class Elements
            {
                public const string EndpointReference = "EndpointReference";
            }
        }

		public class WSIdentity
        {
            public const string NamespaceUri = "http://schemas.xmlsoap.org/ws/2005/05/identity";

            public class Attributes
            {
                public const string Uri = "Uri";
                public const string Optional = "Optional";
            }

            public class ClaimTypes
            {
                public const string PPID = "http://schemas.microsoft.com/ws/2005/05/identity/claims/privatepersonalidentifier";
				public const string AuthDecision = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authorizationdecision";
            }

            public class Elements
            {
                public const string ClaimType = "ClaimType";
				public const string InformationCard = "InformationCard";
				public const string InformationCardReference = "InformationCardReference";
				public const string CardId = "CardId";
				public const string CardVersion = "CardVersion";
				public const string CardName = "CardName";
				public const string CardImage = "CardImage";
				public const string MimeType = "MimeType";
				public const string Issuer = "Issuer";
				public const string TimeIssued = "TimeIssued";
				public const string TimeExpires = "TimeExpires";
				public const string TokenServiceList = "TokenServiceList";
				public const string TokenService = "TokenService";
				public const string UserCredential = "UserCredential";
				public const string DisplayCredentialHint = "DisplayCredentialHint";
				public const string UserNamePasswordCredential = "UsernamePasswordCredential";
				public const string UserName = "Username";
				public const string X509V3Credential = "X509V3Credential";
				public const string KerberosV5Credential = "KerberosV5Credential";
				public const string SelfIssuedCredential = "SelfIssuedCredential";
				public const string PrivatePersonalIdentifier = "PrivatePersonalIdentifier";
				public const string SupportedTokenTypeList = "SupportedTokenTypeList";
				public const string SupportedClaimTypeList = "SupportedClaimTypeList";
				public const string SupportedClaimType = "SupportedClaimType";
				public const string DisplayTag = "DisplayTag";
				public const string Description = "Description";
				public const string RequireAppliesTo = "RequireAppliesTo";
				public const string PrivacyNoticeAt = "PrivacyNotice";
				public const string ClientPseudonym = "ClientPseudonym";
				public const string PPID = "PPID";
				public const string RequestDisplayToken = "RequestDisplayToken";

			}
        }

        public class XMLSignature
        {
            public const string NamespaceUri = "http://www.w3.org/2000/09/xmldsig#";

            public class Elements
            {
                public const string KeyInfo = "KeyInfo";
                public const string KeyValue = "KeyValue";
                public const string RsaKeyValue = "RSAKeyValue";
                public const string Modulus = "Modulus";
                public const string Exponent = "Exponent";
            }
        }

		public class XMLEncryption
		{
			public const string NamespaceUri = "http://www.w3.org/2001/04/xmlenc#";
			public const string Type = "http://www.w3.org/2001/04/xmlenc#Element";

			public class Algorithm
			{
				public const string aes256_cbc = "http://www.w3.org/2001/04/xmlenc#aes256-cbc";
				public const string rsa_oaep_mgf1p = "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p";
			}
            public class Elements
            {
				public const string EncryptedData = "EncryptedData";
				public const string EncryptionMethod = "EncryptionMethod";
				public const string EncryptedKey = "EncryptedKey";
				public const string CipherData = "CipherData";
				public const string CipherValue = "CipherValue";
            }
		}

		public class SAML
		{
			public const string NamespaceUri = "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1";
		}

		public class OpenID
		{
			public const string NamespaceUri = "http://specs.openid.net/auth/2.0";
			public const string Prefix = "openid";
			public const string OpenIDToken = "OpenIDToken";

			public class Elements
			{
				public const string ns = "ns";
				public const string mode = "mode";
				public const string op_endpoint = "op_endpoint";
				public const string claimed_id = "claimed_id";
				public const string identity = "identity";
				public const string return_to = "return_to";
				public const string response_nonce = "response_nonce";
				public const string assoc_handle = "assoc_handle";
				public const string signed = "signed";
				public const string sig = "sig";
			}
		}
	}
}
